;##################################
;命令：
;nasm -f elf64 day90_pack.asm -o main.o && gcc main.o -o main -lc -no-pie && ./main
;无输出
;##################################
extern printf

section .data
	arr: dd 0, 1.1111, 2.2222, 3.3333, 4.4444, 5.5555, 6.6666, 7.7777, 8.8888, 9.9999, 10.0000

section .text
	global main

main:
	push rbp
	mov rbp, rsp

;####################################################################################
	;void foo(float *a) {
	;    a[7] = a[1] + a[3];
	;    a[8] = a[2] + a[4];
	;    a[9] = a[3] + a[5];
	;    a[10] = a[4] + a[6];
	;}
	vmovups xmm0, [arr + 4 * 1]		;xmm0 = [1.1111, 2.2222, 3.3333,  4.4444]
	vmovsd xmm1, [arr + 4 * 5]		;xmm1 = [5.5555, 6.6666, 0     ,  0     ]
	vshufps xmm2, xmm0, xmm1, 01001110b	;xmm2 = [3.3333, 4.4444, 5.5555,  6.6666]
	vaddps xmm3, xmm0, xmm2			;xmm3 = [4.4444, 6.6666, 8.8888, 11.1110]
	vmovups [arr + 4 * 7], xmm3
;####################################################################################

	mov eax, 0
	leave
	ret
